Virtual storage apparatuses are well known, in which virtual storing devices (hereinafter also referred to as “virtual disks (VDISKs)”) are provided using physical storing devices, such as hard disk drives (HDDs), for flexibly allocating storage areas to users of the storing devices (see Patent Documents 1-6, for example).
In a virtual storage apparatus, a business server, which represents one example of a higher-level apparatus, may obtain a snapshot of data on a VDISK (differential copy). As in the example in FIG. 29 that depicts how areas of a snapshot are managed, after a snapshot is generated, differential data that represents changes in data after the snapshot was stored in a working VDISK, and the data before the snapshot was obtained, is read from a master VDISK. A write to the working VDISK for the snapshot constitutes differential data, and is handled as a bundle of data (hereinafter, referred to as chunk) by an management server for the virtual storage apparatus.
A chunk is a logical block in the smallest unit in a certain size, and is obtained in a free area in the working VDISK. Chunks are arranged sequentially in a physical storing device in the order of the indices of the chunks (in the order of the time when input/outputs (I/Os) are received). The indices of the chunkmatch the physical addresses in the physical storing device.
As in the example in FIG. 30, when an initial write (first write) I/O is made to an offset (virtual address) where no differential data to the working VDISK has been created, the management server obtains a fresh chunk, and writes data into the obtained chunk. In the example in FIG. 30, the management server obtains a chunk of an index value (index, physical address) of “0x003” for a write I/O to an offset of “7” where no differential data to the working VDISK is present, and writes data into the obtained chunk. The management server then registers the offset (virtual address) and the obtained chunk location (physical address), to a V-R map that indicates the relations between virtual addresses and physical addresses.
In contrast, as in the example in FIG. 31, when a write (second or subsequent write) I/O is made to an offset where differential data has been created, the management server obtains the chunk that has been allocated to (associated with) the write address (virtual address), and writes data into the obtained chunk. In the example in FIG. 31, the management server obtains, from the V-R map, the chunk of an index of “0x002” where differential data has been stored, for a write I/O to an offset of “3” where the differential data is present in working VDISK, and writes (overwrites) data into the obtained chunk.
A snapshot can reduce the I/O load on the business server, by means of such a differential copy.
Patent Document 1: Japanese National Publication of International Patent Application No. 2012-531653
Patent Document 2: Japanese Laid-open Patent Publication No. 2011-76572
Patent Document 3: Japanese Laid-open Patent Publication No. 2010-86420
Patent Document 4: Japanese National Publication of International Patent Application No. 2007-502470
Patent Document 5: Japanese Laid-open Patent Publication No. 2009-116601
Patent Document 6: Japanese Laid-open Patent Publication No. 2008-65434
In the working VDISK storing differential data, virtual addresses for first writes are randomly allocated to physical addresses, and thus the data read performance (access performance) from the working VDISK may deteriorate.
Note that the above-identified issue is not limited to a snapshot where a differential copy is created, and the read performance from a virtual storing device may also be deteriorated when virtual addresses are allocated to physical addresses sequentially in the order of the time when I/Os are received.